From 22f26745426b82b629f76da9315332b921db9d84 Mon Sep 17 00:00:00 2001 From: "kfraser@localhost.localdomain" Date: Fri, 24 Aug 2007 16:32:56 +0100 Subject: [PATCH] hvmloader: Clarify relationship between xen_domain_handle_t and SMBIOS uuid field. Signed-off-by: Keir Fraser --- tools/firmware/hvmloader/smbios.c | 4 ++-- tools/firmware/hvmloader/util.h | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/tools/firmware/hvmloader/smbios.c b/tools/firmware/hvmloader/smbios.c index fed2df5bfc..07d9e7b848 100644 --- a/tools/firmware/hvmloader/smbios.c +++ b/tools/firmware/hvmloader/smbios.c @@ -159,8 +159,7 @@ get_memsize(void) int hvm_write_smbios_tables(void) { - uint8_t uuid[16]; /* ** This will break if xen_domain_handle_t is - not uint8_t[16]. ** */ + xen_domain_handle_t uuid; uint16_t xen_major_version, xen_minor_version; uint32_t xen_version; char xen_extra_version[XEN_EXTRAVERSION_LEN]; @@ -173,6 +172,7 @@ hvm_write_smbios_tables(void) unsigned tmp_len; /* length of next string to add */ hypercall_xen_version(XENVER_guest_handle, uuid); + BUILD_BUG_ON(sizeof(xen_domain_handle_t) != 16); /* xen_version major and minor */ xen_version = hypercall_xen_version(XENVER_version, NULL); diff --git a/tools/firmware/hvmloader/util.h b/tools/firmware/hvmloader/util.h index 42b20bdf09..6ce796b3cc 100644 --- a/tools/firmware/hvmloader/util.h +++ b/tools/firmware/hvmloader/util.h @@ -17,6 +17,7 @@ extern void __assert_failed(char *assertion, char *file, int line) extern void __bug(char *file, int line) __attribute__((noreturn)); #define BUG() __bug(__FILE__, __LINE__) #define BUG_ON(p) do { if (p) BUG(); } while (0) +#define BUILD_BUG_ON(p) ((void)sizeof(char[1 - 2 * !!(p)])) /* I/O output */ void outb(uint16_t addr, uint8_t val); -- 2.30.2